Some conventional flash memory and other solid-state storage devices implement multi-level cell (MLC) memory elements to store multiple bits of data in the same memory cell. In general, the MLC memory elements are programmable to multiple states, which are each characterized by separate voltage thresholds. As an example, a two-bit MLC memory element can be programmed to one of four different states, each state corresponding to a unique voltage range.
Storing multiple bits of data in the same memory element increases the capacity of the flash memory. However, this approach also typically decreases the longevity of the device in various ways, including the number of times each memory element can be accurately written, the number of times each memory element can be accurately read per write, and the ability to maintain the accuracy of the data, for example, when the flash memory is not powered, is operating at high temperatures, or under other conditions. While the availability of increased capacity may drive the use of MLC memory element in flash memory, the possibility of decreased accuracy or product life can be a deterrent. By way of comparison, single-level cell (SLC) memory elements may have better accuracy and/or longer life, but are typically more expensive to manufacture (i.e., greater cost per bit).
As a compromise between MLC and SLC memory elements, some flash memory and other solid-state storage devices implement an SLC mode using MLC memory elements. In this mode, each MLC memory element is used to store a single bit, rather than multiple bits. This approach may provide improved accuracy and/or longevity compared with conventional MLC memory devices, while maintaining a lower cost per bit than conventional SLC memory devices.